package com.ruoyi.system.mapper;

import com.ruoyi.common.utils.MapPro;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface MapperTool {

	/**
	 * 根据表明查询字段
	 * @param tabName
	 * @return
	 */
	@Select("select COLUMN_NAME from information_schema.COLUMNS where table_name = #{tabName}")
	public List<String> getTableColumn(String tabName);
	
	/**
	 * 查询所有表信息
	 * @param dataName :数据库名称
	 * @return
	 */
	@Select("select i.TABLE_NAME,i.COLUMN_NAME,i.DATA_TYPE,i.COLUMN_KEY from information_schema.COLUMNS i where i.TABLE_SCHEMA=#{dataName} order by table_name  ")
	public List<MapPro> getAllTable(String dataName);
	
	/**
	 * 查询一列
	 * @return
	 */
	@Select("${sql}")
	public MapPro getOne(@Param("sql") String sql);
	

	/**
	 * 查询集合
	 * @return
	 */
	@Select("${sql}")
	public List<MapPro> getList(@Param("sql") String sql);
	
	/**
	 * 执行更新
	 * @param sql
	 * @return
	 */
	@Update("${sql}")
	public int update(@Param("sql") String sql);
	
	/**
	 * 插入记录，并且返回ID
	 * @param sql
	 * @return
	 */
	@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
	@Insert("${sql}")
	public int insData(@Param("sql") String sql);
	
}
